#include #include #define N 7 typedef enum{bianco, rosso, verde, blu} colore; typedef enum{trenino, giocattoli, vestiti} regalo; struct EL1 {regalo reg; colore col; int numero; struct EL1 *next;}; struct EL2 {regalo reg; colore col; struct EL2 *next;}; typedef struct EL1 Lista; typedef struct EL2 Lettera; typedef Lista *Plista; typedef Lettera *Plettera; typedef enum {false, true} boolean; void taglia(Plettera *let, int n) { Plettera aux; if((*let)!=NULL) { if(n>0) { taglia(&((*let)->next), n-1); } else { aux=*let; *let=(*let)->next; free(aux); taglia(&(*let), n); } } } void aggiorna(Plista *lista, Plettera *lettera) { Plista aux; Plettera bux; aux=*lista; bux=*lettera; while(bux!=NULL) { while(aux!=NULL) { if(bux->reg == aux->reg) { while (bux->col != aux->col) aux=aux->next; if(aux->numero>0) { aux->numero-=1; aux=*lista; } else printf("errore, giocattolo terminato! \n"); } else aux=aux->next; } bux=bux->next; } } int pari(int v[], int dim) { int i=0; if(dim>0) { if(v[i]%2==1) return 1+pari((v+1), dim-1); else return pari((v+1), dim-1); } return 0; } int main() { int a, b, tre, neg; int vet[N]={2, 3, 4, 6, 2, 4, 5}; int ris=0; neg=0; tre=0; printf("sequenza di interi:\n"); scanf("%d%d", &a, &b); while(a>0 || b>0) { if(a%3==0 && a>0) tre+=a; if(b%3==0 && b>0) tre=tre+b; if(a<0) neg=neg+a; if(b<0) neg=b; scanf("%d%d", &a, &b); } neg=neg+a+b; printf("somma multipli di 3: %d\n", tre); printf("somma negativi: %d", neg); ris=pari(vet, N); if(ris%2==0) printf("pari\n"); else printf("dispari\n"); return 0; }